As networks, and applications that utilize them, become more and more complex, so do potential problems associated with them. Analogously, as problems become potentially more and more complex, so does troubleshooting and remedying them.
For purposes of completeness, “network” as used herein generally refers to any group of two or more network devices, such as VoIP stations and computers, linked together. Common examples of networks include Local Area Networks, Wide Area Networks, Campus Area Networks, Home Area Networks and the global interconnection of computers, and other computing devices, commonly referred to as the Internet. As used herein, “VoIP station” generally refers to an IP telephone or other network element involved in the transport, creation, or termination of VoIP packets, while “computer” generally means a programmable machine, like a commercially available Personal Computer (PC). Further, by way of non-limiting example also, “application” as used herein generally refers to any program or group of programs designed for end users or for another program. Common examples of applications include database programs, word processors, and spreadsheets.
Internet Protocol (IP) networks use a particular format of packets, also called datagrams, and addressing scheme. IP uses datagrams that include headers that provide information related to the data being transmitted. A network that utilizes IP is one example of a packet switched network. Each packet is transmitted individually and can even follow different routes to its destination. Once all the packets forming a message arrive at the destination, they are recompiled into the original message. Packet headers typically specify type of service (ToS), identification values, the allowability of datagram fragmenting, time to live values, protocol identifiers, source and destination addresses and padding, by way of non-limiting example only. This information may be used to route payload data across an IP network from a source IP address to a destination IP address.
The present invention will be described as it relates to VoIP systems and their underlying IP networks for purposes of explanation and by way of non-limiting example only. For purposes of completeness only, VoIP is a category of application that enables people to use packet switched networks as a transmission medium for telephone calls. Of course other applications, such as Fax over IP (FIP) may be suitable for use with the present invention also. Further, other types of networks and protocols may be suitable for use with the present invention as well.
In order to send voice over a packet network, one first digitizes the voice signal, using an Analog-to-Digital (A/D) converter and Pulse-Code Modulation (PCM) for example. Commercially available computer sound cards may be used to accomplish this digitization. The digitally, sampled and quantized voice signal may then be routed across the network using conventional packet switching methodologies, such as those associated with IP. The received signal may then be reconstructed into analog form for listening. This is, in essence, the reverse of digitization, and may also be accomplished using a commercially available computer sound card. For return voice communications, the same methodology may be used.
When users of VoIP stations experience problems, such as by experiencing audio distortion, a need exists for a method and system for rapid troubleshooting. For example, VoIP users typically want quality and reliability associated with Private Branch Exchange (PBX) systems. In other words, users typically want very few noticeable errors and low delays, such as with conventional telephone systems like PBX systems. With packetized voice however, each packet will typically arrive with a slightly different amount of delay, resulting in jitter. Also, due to the nature of packet networks in general, some packets will inevitably include errors on arrival or not even arrive at all. These circumstances are also foreign to conventional PBX systems. Yet, each of these problems may lead to user-complained about performance deficiencies in VoIP applications and systems.
Conventionally, a VoIP system provider or maintenance organization may need to dispatch a technician to the client site to facilitate troubleshooting the system and network. Needless to say, this is often undesirable. Nonetheless, such a technician may need to capture extensive amounts of data traversing the network, in an attempt to first understand the problem being complained about. This data then typically needs to be communicated to a service center, where it may be analyzed in an attempt to troubleshoot the problem. This data can often exceed several gigabytes. Capturing, transferring and analyzing this data may thus prove problematic, due in part to its voluminous nature. Further, due to the aforementioned increasing complexity of IP networks and VoIP systems, and the possible existence of intermittent problems that may be difficult to reliably reproduce, there is little way to confirm that data indicative of a user experienced problem is even included in the captured data in the first place. Thus, repeated visits by technicians may be typically required.
It is thus desirable to provide a system and method for more rapidly troubleshooting networks and applications that use them, such as IP networks and VoIP systems.